package tec;

class FauxBus implements Bus , Transport
{
    private final int nbPlaceAssise;
    private final int nbPlaceDebout;
    
    // private Passager[] passagers;
    private int nbPassagers;

    private JaugeNaturel jaugeAssis;
    private JaugeNaturel jaugeDebout;
    private int arretActuel;
    

    FauxBus(int nbPlaceAssise, int nbPlaceDebout)
    {
	this.nbPlaceAssise = nbPlaceAssise;
	this.nbPlaceDebout = nbPlaceDebout;
	
	
	jaugeAssis = new JaugeNaturel(0, nbPlaceAssise, 0);
	jaugeDebout = new JaugeNaturel(0, nbPlaceDebout, 0);
	arretActuel = 0;
    }
    
   public void allerArretSuivant()
    {
	     arretActuel++; 
    }
	
    public boolean aPlaceAssise()
    {
	return (!jaugeAssis.estRouge());
    }

    public boolean aPlaceDebout()
    {
	return (!jaugeDebout.estRouge());
    }	   

    public void demanderChangerEnAssis(Passager p)
    {
	if (aPlaceAssise())
	{
	    p.accepterPlaceAssise();
	    jaugeAssis.incrementer();
	    jaugeDebout.decrementer();
	}
    }
	    
    public void demanderChangerEnDebout(Passager p)
    { 
	if (aPlaceDebout())
	{
	    p.accepterPlaceDebout();
	    jaugeDebout.incrementer();
	    jaugeAssis.decrementer();
	}
    }  

   
    public void demanderPlaceAssise(Passager p)
    {
       if (aPlaceAssise())
       {
          p.accepterPlaceAssise();
	  //passagers[nbPassagers] = p;
	  nbPassagers++;
          jaugeAssis.incrementer();
       }
    }
    
    public void demanderPlaceDebout(Passager p)
    {
       if (aPlaceDebout())
       {
          p.accepterPlaceDebout();
	  //   passagers[nbPassagers] = p;
          nbPassagers++;
          jaugeDebout.incrementer();
       }
    }
    
    public void demanderSortie(Passager p)
    {
	p.accepterSortie();
    }
}
